In recent years, as a network such as the Internet has been widespread, the World Wide Web (WWW) system has come to be widely used. In the old days, a website only displayed a web page or made simple communication with a reader, and accordingly, the website was composed by only a web server in many cases. However, in recent years, occasions where the website is used for basic operations of an enterprise and the like have been increased, and a variety of servers including the web server, a data base server, an application server and the like have come to be connected to the network and to function as the website in collaboration with one another.
When a configuration of the website becomes complicated as described above, in the case where some malfunctions occur in the operation of the website, it becomes difficult to determine a server where a failure has occurred. Moreover, even if the failure has occurred, the server is sometimes provided redundantly for the purpose of continuing the operation of the website, and in this case, it becomes further difficult to analyze the failure. As an example, a plurality of DNS (Domain Name System) servers are sometimes provided in the network. For example, when a server cannot make an inquiry to a primary DNS server, the server makes an inquiry to a secondary DNS server, thus making it possible to acquire a desired IP address. In such a case, a failure caused in the primary DNS server is sometimes overlooked.
The following documents are considered:                [Patent Document 1] Japanese Patent Laid-Open No. H11 (1999)-259331        [Non-Patent Document 1] “Network Node Manager”, [online], [retrieved on Dec. 22, 2003], Internet <URL: http://www.jpn.hp.com/openview/lineup/network/nnm/>        [Non-Patent Document 2] “Systemwalker Network Topology Manager”, [online], [retrieved on Dec. 22, 2003], Internet<URL: http://systemwalker.fujitsu.com/jp/nettopology/function/>        [Non-Patent Document 3] “J2EE pafomansu shindan tsuru (J2EE Performance Diagnosis Tool)”, [online], [retrieved on Dec. 22, 2003], Internet <URL: http://www.grapecity.com/japan/support/database/P2—203.htm>        [Non-Patent Document 4] “Discovering Dynamic Dependencies in Enterprise Environments for Problem Determination”, Manish Gupta et al, 14th IEIF/IEEE Workshop on Distributed Systems: Operations and Management        
Heretofore, as a technique for detecting/analyzing the failure in the network, there is used a technology for analyzing communications among network devices in a manner that packets flowing through the network are monitored or information concerning the communications is acquired from the network devices such as routers (refer to Non-Patent Document 1 and Non-patent Document 2). According to this technology, a communication state in a physical layer, a data link layer or a network layer in an OSI layer model can be analyzed. However, according to this technology, a processing status in the application layer cannot be detected. Therefore, it is difficult to analyze a relationship in which services provided by the respective server programs depend on one another.
For example, in general, even if the failure does not occur, an amount of the packets flowing through the network fluctuates, for example, periodically. An amount of the packets flowing through the network also changes when the failure occurs in a server program, and it is difficult to differentiate this change of amount from the periodical fluctuation. Moreover, a large amount of packets flow through the network for a variety of purposes, and when the amount of packets, which changes due to the failure, is slight, the occurrence of failure cannot be detected in some cases. For example, in the case where the above-described DNS servers are receiving inquiries from a large number of server programs, it is difficult to detect a failure that has occurred only in an inquiry from a specific server program.
For this problem, heretofore, a technology for detecting/analyzing the processing status in the application layer has been proposed. For example, there is used a technology for detecting a server program that may be affected by the failures of the respective server programs, based on connection topology in which the respective servers are interconnected through the network, and based on configuration files of the server programs operating in the respective servers (refer to Patent Document 1). Moreover, there is used a technology for analyzing an influence given by each server program to the other server program in a system constructed in accordance with J2EE (Java 2 Enterprise Edition, “Java” is a registered trademark) (refer to Non-Patent Document 3). Moreover, there is used a technology for analyzing a relationship in which calls for services depend on one another in a manner that a plurality of server programs accumulate logs recording calls made to one another for services (refer to Non-Patent Document 4).
However, the technology of Patent Document 1 only analyzes statically the influences which the plurality of server programs may give to one another, and it is difficult for the technology to dynamically analyze the information concerning the communications actually performed through the network. Furthermore, when a detailed implementation method of the server programs is closed, contents of the configuration files of the server programs are unknown, and accordingly, the dependencies cannot be properly analyzed. Moreover, the technology of Non-Patent Document 3 is only applicable to systems constructed in accordance with the J2EE, and it is difficult to apply the technology to a common network. Moreover, the technology of Non-patent Document 4 can analyze a relationship in which transactions that are processing of calling the services depend on one another; however, the technology cannot obtain a frequency at which the respective services are called from the other respective services.